// Copyright 2014 The Oppia Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS-IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/**
 * @fileoverview Directive for the rule editor.
 *
 * @author sll@google.com (Sean Lip)
 */

oppia.directive('ruleEditor', ['$log', function($log) {
  return {
    restrict: 'E',
    scope: {rule: '=', choices: '=', explorationId: '='},
    templateUrl: 'inline/rule_editor',
    controller: [
      '$scope', '$attrs', 'editorContextService',
      function($scope, $attrs, editorContextService) {
        $scope.getActiveStateName = function() {
          return editorContextService.getActiveStateName();
        };

        $scope.getCssClassForRule = function(rule) {
          return ($scope.isRuleConfusing(rule) ? 'oppia-rule-bubble-warning'
                                               : 'oppia-rule-bubble');
        };

        $scope.isRuleConfusing = function(rule) {
          return (
            rule.feedback.length === 0 &&
            rule.dest === editorContextService.getActiveStateName());
        };
      }
    ]
  };
}]);
